package com.ucar.train.service;

import com.ucar.train.ServerResponse;
import com.ucar.train.dto.CarDTO;
import com.ucar.train.dto.StoreCarMappingDTO;
import com.ucar.train.dto.StoreDTO;
import com.ucar.train.vo.CarVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.servlet.ModelAndView;

import javax.mail.Store;
import java.math.BigDecimal;
import java.util.List;

/**
* @Description
* @author Helingang
* @param
* @createDate 2019/8/13
**/
public interface StoreService {

   StoreDTO selectStorebyStoreId(String storeId);

   List<StoreDTO> selectAllStore();

   /**
   * @Description 根据门店id查询到门店的车辆信息（多辆）
   * @author Helingang
   * @param  storeId
   * @createDate 2019/8/14
   **/
   List<CarDTO> selectCarByStoreId(String storeId);
/**
* @Description 根据相应的门店id进行调度
* @author Helingang
* @param  storeId，carType，carNumber
* @createDate 2019/8/14
**/
   List<String>schedulCarByStoreId(String storeId, String carType, Integer carNumber);
/**
* @Description 根据调度的车辆修改相应的门店id
* @author Helingang
* @param  carIdList,storeId
* @createDate 2019/8/14
**/
   Integer updateCarOfStoreIdAfterSchedul(List<String> carIdList, String storeId);

   /**
    * @Author zhoujinmu
    * @Description 通过门店id关联查询车信息,包含租金
    * @Date 2019/8/14 15:58
    */
   List<StoreCarMappingDTO> selectCarInfoByStoreId(String storeCode);

   /**
    * 添加门店
    * @param storeDTO
    * @return
    * @auther LiuHao
    */
   ServerResponse addStore(StoreDTO storeDTO);

   /**
    * 添加门店车辆
    * @param carDTO
    * @param storeCode
    * @param cost
    * @return
    */
   ServerResponse<ModelAndView> addCar(CarDTO carDTO, String storeCode, BigDecimal cost);


   /**
    * @Author zhoujinmu
    * @Description 根据门店编号和车辆类型获取车辆价格
    * @Date 2019/8/19 13:33
    */
   BigDecimal getCarCostByCarTypeAndStoreCode(String storeCode, String carType);

}
